package com.ruoyi.business.service;

import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.business.domain.Platform;
import com.ruoyi.business.domain.Station;
import com.ruoyi.business.domain.vo.PlatformVo;

/**
 * 车站管理Service接口
 * 
 * @author ruoyi
 * @date 2025-03-21
 */
public interface IPlatformService 
{
    /**
     * 查询车站管理
     * 
     * @param id 车站管理主键
     * @return 车站管理
     */
    public Platform selectPlatformById(Long id);

    /**
     * 查询车站管理列表
     * 
     * @param platform 车站管理
     * @return 车站管理集合
     */
    public List<Platform> selectPlatformList(Platform platform);

    /**
     * 新增车站管理
     * 
     * @param platform 车站管理
     * @return 结果
     */
    public int insertPlatform(Platform platform);

    /**
     * 修改车站管理
     * 
     * @param platform 车站管理
     * @return 结果
     */
    public int updatePlatform(Platform platform);

    /**
     * 批量删除车站管理
     * 
     * @param ids 需要删除的车站管理主键集合
     * @return 结果
     */
    public int deletePlatformByIds(Long[] ids);

    /**
     * 删除车站管理信息
     * 
     * @param id 车站管理主键
     * @return 结果
     */
    public int deletePlatformById(Long id);

    /**
     * 批量新增车站管理
     * @param platformList 需要删除的数据主键集合
     * @return 结果
     */
    public int insertPlatforms(List<Platform> platformList);

    /**
     * 获取有车站的城市列表
     *
     * @param platform 查询条件
     * @return 城市列表
     */
    public List<Platform> selectCitiesWithPlatforms(Platform platform);
    /**
     * 根据站名查询平台
     *
     * @param stationName 站名
     * @return 平台列表
     */
    public List<Platform> selectPlatformsByStationName(String stationName);

    /**
     * 根据城市ID和站点名称查询车站
     *
     * @param cityId 城市ID
     * @param stationName 站点名称
     * @return 车站信息
     */
    boolean existsPlatformByCityIdAndStationName(Long cityId, String stationName);

    /**
     * 下载车站管理导入模板 - 不包含错误字段
     *
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    public void downloadCustomTemplate(HttpServletResponse response) throws IOException;
    
    /**
     * 导出车站管理导入错误数据 - 使用ID替代行号
     *
     * @param response HTTP响应
     * @param errorDataList 错误数据列表
     * @throws IOException IO异常
     */
    public void exportCustomErrorData(HttpServletResponse response, List<PlatformVo> errorDataList) throws IOException;

    /**
     * 清空车站数据
     * 
     * @return 结果
     */
    public int clearPlatform();
}
